// Package main provides ...
package main

import (
	"fmt"
	"sync"
	"time"
)

var wg sync.WaitGroup

func main() {
	data := make(chan int)
	quit := make(chan bool)
	go func() {
		for { // 不加for死循环，则会死锁。
			select {
			case <-data:
				// fmt.Println("num:", num)
				// wg.Done()

				// 处理完通道数据后，send没写数据，rece没数据可读，进入阻塞状态，阻塞3s后退出
			case <-time.After(1 * time.Second):
				fmt.Println("timeout...")
				quit <- true
			}
		}
	}()

	for i := 0; i < 8; i++ {
		// wg.Add(1)
		// data <- i
		//向通道写入数据后，稍等
	}
	<-quit
	wg.Wait()
}
